/**
* @author maze | guavestudios.com
* @license MIT License see LICENSE.TXT
* @version 0.1
*/

package com.guavestudios.fcon.plugins {
	import com.guavestudios.fcon.api.IControlableConsole;

	/**
	* Defines a Plugin for the console
	*/
	public interface IConsolePlugin {
		/**
		* Called when the plugin is finally loaded
		* @param	c the console
		*/
		function initPlugin(c:IControlableConsole):void;
		/**
		* Called when the plugin is going to be unloaded
		*/
		function unloadPlugin():void;
		/**
		* Current state of the plugin see @see com.guavestudios.fcon.plugins.PluginState
		*/
		function get State():int;
		/**
		* Plugin name
		*/
		function get Name():String;
		/**
		* Plugin version
		*/
		function get Version():String;
	}
	
}
